Non-Volatile Memory Apparatus and Method for Accessing a Non-Volatile Memory Apparatus

ABSTRACT

A non-volatile memory apparatus and a method for accessing the non-volatile memory apparatus are provided. The non-volatile memory apparatus comprises a management unit, a look-up table and a controller. The management unit comprises a plurality of data blocks and a plurality of spare blocks. The look-up table is adapted to record the read status of the management unit. The controller is configured to read the management unit and then generate the read status denoting the times that the management unit has been read to the look-up table, and to replace one of the data blocks by one of the spare blocks in response to the read status when the times that the management unit has been read exceeds a reference value.

CROSS-REFERENCES TO RELATED APPLICATIONS

Not applicable.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a non-volatile memory apparatus. Moreparticularly, the present invention relates to a non-volatile memoryapparatus configured to prevent from read disturb and an accessingmethod thereof.

2. Descriptions of the Related Art

Non-volatile memories are widely used in many digital products such asmobile phones, personal computers, MP3 players, PDAs (personal digitalassistant) and digital cameras. However, there are some limitations dueto the natural characteristics of non-volatile memories. For example, aflash memory may repeatedly read the same block in the flash memory whendata stored in the flash memory is static, that is, not erased or moved.Since the block is mainly constituted by a plurality of transistors,once the block is in static situation, the electric potential voltage onthe floating gate of a transistor would vary. For a NAND flash memory,the electric potential voltage would increase when the block is staticfor a long time. More particularly, for a NAND flash memory, electronsflow out of the floating gate when the NAND flash memory is read,causing an increase in the electric potential voltage. In other words,the various electric potential voltage may have an error when the blockis read again. The aforementioned phenomenon is denoted as a readdisturb, and the flash memory cannot be read correctly. Moreover, thedata may be lost and cannot be retrieved anymore.

Thus, it is important to modify data blocks that are read extortionatelyto prevent read disturb.

SUMMARY OF THE INVENTION

The primary objective of this invention is to provide a non-volatilememory apparatus, which comprises a management unit, a look-up table anda controller. The management unit comprises a plurality of data blocksand a plurality of spare blocks. The look-up table is adapted to recordthe read status of the management unit. The controller is configured toread the management unit and then generate the read status denoting thetimes that the management unit has been read to the look-up table. Thecontroller activates to replace the data blocks with spare blocks inresponse to the read status when the times that the management unit hasbeen read exceed the reference value.

Another objective of this invention is to provide a method for accessinga non-volatile memory apparatus. The non-volatile memory apparatuscomprises a plurality of management units having a plurality of datablocks and a plurality of spare blocks. The method comprises the stepsof: generating a read status by reading the management unit, in whichthe read status denotes times that the management unit has been read;replacing one of the data blocks by one of the spare blocks in responseto the read status when the times that the management unit has been readexceeds a reference value.

With this arrangement, the present invention is capable of decreasingthe times that the same data block in the management unit has been readto avoid read disturb.

The detailed technology and preferred embodiments implemented for thesubject invention are described in the following paragraphs accompanyingthe appended drawings for people skilled in this field to wellappreciate the features of the claimed invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating a non-volatile memory apparatusof the present invention;

FIG. 2 illustrates the variation apparatus in accordance with FIG. 1;and

FIG. 3 is a flow chart illustrating the method for accessing anon-volatile memory apparatus.

DESCRIPTION OF THE PREFERRED EMBODIMENT

The present invention provides a non-volatile memory apparatus andmethod for accessing the non-volatile memory apparatus. When times thatone data block has been read reaches to a reference value, the datablock is replaced by one spare block by means of using wear-leveling.

FIG. 1 is a block diagram illustrating a non-volatile memory apparatus 1of the present invention, in which the non-volatile memory apparatus 1is connected to a host 19 via an interface, such as a universal serialbus (USB). The non-volatile memory apparatus 1 comprises a managementunit 11, a look-up table 13 and a controller 15. The management unit 11comprises a plurality of data blocks 111 and a plurality of spare blocks112. The look-up table 13 is adapted to record a read status of themanagement unit 11. The controller 15 reads the management unit 11 whenit receives a command from the host 19, then the controller 15 generatesthe read status denoting times that the management unit 11 has beenread, and stores the read status in the look-up table 13.

The read status indicates read count of the management unit 11. When thetimes that the management unit 11 has been read exceeds a referencevalue, the controller 15 would replace one of the data blocks 111 by oneof the spare blocks 112 in response to the read status. Moreparticularly, the read status may indicate kinds of read count, forexample, the read status indicates a gross read count denoting timesthat the data blocks have been read, a particular read count denotingone data block which has latest been read. As the gross read countincreases, the management unit 11 needs to be wear-leveled. When thegross read count exceeds a reference value, it means the management unit11 has been read by certain times, and the controller 15 proceeds theweal-leveling to the management unit 11 to replace the data block whichhas latest been read by one spare block. Then the controller 15re-calculates the gross read count after the wear-leveling. Since thedata block has been replaced by one spare block, the spare block nowmaps to the logical address of the data block for continuouslymaintaining the data and preventing from data lose due to read disturb.

The gross read count varies as the non-volatile memory apparatusoperates, whenever any one of the data blocks is continuously read, thecontroller 15 adds one on the gross read count, and whenever any one ofthe data blocks is written, the controller 15 subtract one from thegross read count. The mechanism is designed based on characters of thenon-volatile memory apparatus. For example, writing operation of thenon-volatile memory apparatus can re-distribute the internal electricpotential voltage, and the non-volatile has to erase a written blockbefore updating new data into the written block, the updating operationalso can re-distribute the internal electric potential voltage. Thecharacters can help in preventing read disturb when writing operationoccurs.

The controller 15 can also proceed the wear-leveling to the managementunit 11 in other way. The look-up table 13 can be configured to record aparticular read count denoting times that each data block has been read.Refer to the previous example, the look-up table 13 needs largercapability for recording each data block. Once the look-up table 13records times that each data block has been read, the controller 15 canproceed the wear-leveling to replace one data block that has the largestparticular read count by one spare block, when the gross read countexceeds the reference value. That is, the controller 15 can proceed thewear-leveling in accordance with the data block that needs to bereplaced most.

The present invention aims at replacing the data block that has beenread extortionately to prevent read disturb, thus the read status isbrought up for indicating the gross read count and the particular readcount. A detailed description of the look-up table 13 is described inbelow. In this example, the look-up table 13 occupies 1024 bitscorresponding to 1024 data blocks of the management unit 11, the bitsare configured to manage the read status of the data blocks 111. Sinceone bit can present two statuses, “0” and “1”, digitally, each datablock is tagged with two read flags by one corresponding bit. Once onedata block is read, its read flag would be set into “1”, and once onedata block is written/programmed or erased, its read flag would be setinto “0”. When any read flag is set into “1”, the controller 15 adds oneon the gross read count, and similarly, when any read flag is set into“0”, the controller 15 subtracts one from the gross read count. Thecontroller 15 reads the look-up table 13 from time to time to check theread status of the management unit 11.

If the look-up table 13 occupies more bits, it can record more differentstatus of corresponding data blocks. For example, if the look-up table13 occupies 4096 bits corresponding to 1024 data blocks, the look-uptable 13 can mostly record sixteen different statuses of each datablocks. Also, the look-up table 13 can be a part of the management unit11, that is, the look-up table 13 can be integrated with the managementunit 11 and be manufactured together. People skilled in the art canunderstand that the capability of the look-up table 13 and the formalityof the look-up table 13 are not limitations of the present invention.

FIG. 2 illustrates another embodiment of the present invention. The maindifferent is that the non-volatile memory apparatus 2 in FIG. 2 furthercomprises a buffer 17 connected between the controller 15 and themanagement unit 11. The buffer 17 is configured to buffer the datatransmission between the controller 15 and the management unit 11increasing efficiency for read data or write data. As for the connectionrelationship of other devices is the same as FIG. 1. It is notnecessarily to describe in detail herein.

FIG. 3 is a flow chart illustrating the method for accessing anon-volatile memory apparatus according to the embodiment of the presentinvention. The method can be applied in the aforementioned embodiments.In general, the method comprising the steps of: generating a read statusby reading the management unit 11, in which the read status denotestimes that the management unit 11 has been read; and proceeding awear-leveling to the management unit 11 to replace one of the datablocks 111 by one of the spare blocks 112 in response to the read statuswhen the times that the management unit 11 has been read exceeds areference value.

The detailed description of this present invention is as follows. InFIG. 3, the first step of the method is step S1. Step S1 denotes thecontroller 15 waiting a command from the host 19. If the command is awrite command, then the step S31 and S32 will be processed. The step S31is configured to execute a write function, and the step S32 isconfigured to execute the controller 15 to set the read flag “0”.

However, if the command is a read command, then the step S41 isprocessed. Step S41 is configured to execute a read function, afterwhich the read function is loaded into the management unit 11 (stepS42.) After completing step S42, the controller 15 may determine whetherthe read flag is “1” or “0” in step S43. The read flag is set into “0”when the data block 111 is written, and set to “1” when the data block111 is read. If the read flag is set into “1”, step S45 is executed togenerate the read status by reading the management unit 11. Theparticular read count of one data block which has been last read.Whenever the data block 111 is continuously read, i.e. read flag is 1,one more count is added to the gross read count. In step S46, when thecount of the data block 111 has reached the reference value, thecontroller 15 activates the wear-leveling to the management unit 11 toreplace one of the data blocks 111 with one of the spare blocks 112 instep S47. Furthermore, when the data block 111 is continuously read sothat the gross read count exceeds the reference value, the controller 15activates the wear-leveling to the management unit 11 to replace one ofthe data blocks 111 with one of the spare blocks 112 in step S47.Finally, step S48 completes the wear-leveling in accordance with stepS45 to step S47.

If the read flag is determined to be “0” in step S43, another readstatus is generated by reading the management unit 11. Another readstatus provides a gross read count denoting the times that the datablock 111 have been read and a particular read count of one data blockwhich has been last read by reading the data block 111 of the managementunit 11. The step of generating the read status is step S44. Wheneverthe data block 111 was written, i.e. read flag is 0, a count issubtracted from the gross read count and the controller 15 sets the readflag to 1. Obviously, it is difficult to exceed the reference value orto be equal to the reference value in step S44. Therefore, it is notnecessary to activate the wear-leveling, and step S48 is executed to endthe operation.

Accordingly, further embodiments and variations from step S43 to stepS47 are described below. The read status provides a gross read countdenoting the times that the management unit 11 has been read and aparticular read count denoting the times that each data block 111 hasbeen read by reading each data block 111 of the management unit 11. Whenthe gross read count exceeds the reference value, step S47 is executedto make the controller 15 activate the wear-leveling to replace the datablock 111 which has been read last by one spare block 112.Alternatively, when the gross read count exceeds the reference value,step S47 is executed to make the controller 15 activate thewear-leveling to replace the data block 111 that has the largestparticular read count by one spare block 112. Finally, step S48 isexecuted to end the wear-leveling.

The above disclosure is related to the detailed technical contents andinventive features thereof. People skilled in this field may proceedwith a variety of modifications and replacements based on thedisclosures and suggestions of the invention as described withoutdeparting from the characteristics thereof. Nevertheless, although suchmodifications and replacements are not fully disclosed in the abovedescriptions, they have substantially been covered in the followingclaims as appended.

1. A non-volatile memory apparatus, comprising: a management unit,comprising a plurality of data blocks and a plurality of spare blocks; alook-up table, being adapted to record a read status of the managementunit; and a controller, being configured to read the management unit andthen generate the read status denoting times that the management unithas been read to the look-up table, and to replace one of the datablocks by one of the spare blocks in response to the read status whenthe times that the management unit has been read exceeds a referencevalue.
 2. The non-volatile memory apparatus as claimed in claim 1,wherein the controller is configured to read the data blocks of themanagement unit, and the read status relates to a gross read countdenoting times that the data blocks have been read and a particular readcount denoting one data block which has latest been read.
 3. Thenon-volatile memory apparatus as claimed in claim 2, wherein thecontroller proceeds to replace the data block which has latest been readby one spare block when the gross read count exceeds the referencevalue.
 4. The non-volatile memory apparatus as claimed in claim 2,wherein the controller is configured to add one on the gross read countwhenever any one of the data blocks is continuously read.
 5. Thenon-volatile memory apparatus as claimed in claim 2, wherein thecontroller is configured to subtract one from the gross read countwhenever any one of the data blocks is written/programmed by thecontroller.
 6. The non-volatile memory apparatus as claimed in claim 1,wherein the controller is configured to read the data blocks of themanagement unit, and the read status relates to a gross read countdenoting times that the data blocks have been read and a particular readcount denoting times that each data block has been read.
 7. Thenon-volatile memory apparatus as claimed in claim 6, wherein thecontroller proceeds to replace one data block which has latest been readby one spare block when the gross read count exceeds a reference value.8. The non-volatile memory apparatus as claimed in claim 6, wherein thecontroller proceeds to replace one data block that has the largestparticular read count by one spare block when the gross read countexceeds a reference value.
 9. The non-volatile memory apparatus asclaimed in claim 6, wherein the controller is configured to add one onthe gross read count whenever any one of the data blocks is continuouslyread.
 10. The non-volatile memory apparatus as claimed in claim 6,wherein the controller is configured to subtract one from the gross readcount whenever any one of the data blocks is written/programmed by thecontroller.
 11. A method for accessing a non-volatile memory apparatus,the non-volatile memory apparatus comprises a plurality of managementunits having a plurality of data blocks and a plurality of spare blocks,the method comprising the steps of: generating a read status by readingthe management unit, in which the read status denotes times that themanagement unit has been read; and replacing one of the data blocks byone of the spare blocks in response to the read status when the timesthat the management unit has been read exceeds a reference value. 12.The method as claimed in claim 11, wherein the generating stepcomprises: generating the read status relates to a gross read countdenoting times that the data blocks have been read and a particular readcount of one data block which has latest been read by reading the datablocks of the management unit.
 13. The method as claimed in claim 11wherein the replacing step comprises: replacing the data block which haslatest been read by one spare block when the gross read count exceedsthe reference value.
 14. The method as claimed in claim 12, wherein thegenerating step comprises: adding one on the gross read count wheneverany one of the data blocks is continuously read.
 15. The method asclaimed in claim 12, wherein the generating step comprises: subtractingone from the gross read count whenever any one of the data blocks iswritten/programmed.
 16. The method as claimed in claim 11, wherein thegenerating step comprises: generating the read status relates to a grossread count denoting times that the data blocks have been read and aparticular read count denoting times that each data block has been readby reading the data blocks of the management unit.
 17. The method asclaimed in claim 16, wherein the replacing step comprises: replacing thedata block which has latest been read by one spare block when the grossread count exceeds the reference value.
 18. The method as claimed inclaim 16, wherein the replacing step comprises: proceeding thewear-leveling to replace the data block that has the largest particularread count by one spare block when the gross read count exceeds thereference value.
 19. The method as claimed in claim 16, wherein thegenerating step comprises: adding one on the gross read count wheneverany one of the data blocks is continuously read.
 20. The method asclaimed in claim 16, wherein the generating step comprises: subtractingone from the gross read count whenever any one of the data blocks iswritten/programmed.